package com.knowif.util.commonUtil;

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;


/**
 * 序列化工具
 * @author xingyao
 * @time 2017年3月21日 下午5:27:26
 * @describe
 */
public class SerializeUtil {
	
	
	
	/**
	 * 得到序列化后的字节码对象
	 * @author xingyao
	 * @date 2017年3月21日
	 * @describe
	 * @param object
	 * @return
	 * @throws IOException 
	 */
	public static byte[] serialize(Object object) throws IOException {
		ObjectOutputStream oos = null;
		ByteArrayOutputStream baos = null;
		// 序列化
		baos = new ByteArrayOutputStream();
		oos = new ObjectOutputStream(baos);
		oos.writeObject(object);
		byte[] bytes = baos.toByteArray();
		return bytes;
	}

	/**
	 * 反序列化对象
	 * @author xingyao
	 * @date 2017年3月21日
	 * @describe
	 * @param bytes
	 * @return
	 * @throws IOException 
	 * @throws ClassNotFoundException 
	 */
	public static Object unserialize(byte[] bytes) throws IOException, ClassNotFoundException {
		ByteArrayInputStream bais = null;
		// 反序列化
		bais = new ByteArrayInputStream(bytes);
		ObjectInputStream ois = new ObjectInputStream(bais);
		return ois.readObject();
	}

}